home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 6 / FM Towns Free Software Collection 6.iso / t_os / cutf / asm / cutf_m.hd6 < prev    next >
Text File  |  1993-07-08  |  5KB  |  468 lines

  1. ds_name        db    'MOZCF\CUTFM',0
  2.  
  3. look_me:
  4.      call sub_esi
  5.      dd  0,0
  6.      dw  1,0           ; wind need
  7.      dw  649,379,0,50 ; sz_x sz_y off x  off y
  8.      dw  0,0          ; waku iro  meniro 
  9.      dw  0,0
  10.  
  11. paint_wd:
  12.      SET_P nddak
  13.      WD_LEFT
  14.      ret
  15. re_paint:
  16.      ret
  17.  
  18. be_called:
  19.      call mozidt_d1
  20.         KAKU 384,edi
  21.         CALL_P nddak
  22.         YOMU ax,382
  23.  
  24.      cmp ax,1
  25.      jne kaeret
  26.  
  27.  
  28.      call shoki
  29.      jmp pp_stat
  30.  
  31.  
  32. kaeret:
  33. mouse_in:
  34.     ret
  35.  
  36. shoki:
  37.      YOMU eax,400
  38.      call f_name1
  39.      mov [edi],eax
  40.  
  41.      YOMU eax,404
  42.      call f_name2
  43.      mov [edi],eax
  44.  
  45.      YOMU eax,502
  46.      call f_size
  47.      mov [edi],eax
  48.  
  49.  
  50.      YOMU eax,506
  51.      call c_size
  52.      mov [edi],eax
  53.  
  54.      ret
  55.  
  56. shoki1:
  57.      RAM1 edi
  58.      mov ecx,250000/4
  59.  
  60.      mov eax,0
  61.      cld
  62.      rep stosd
  63.  
  64.      ret
  65.  
  66.  
  67. pp_stat:
  68.      call h_gets     ; handle get
  69.      jmp f_cutb
  70.  
  71.  
  72. h_gets:
  73.      call f_name1
  74.      mov edx,[edi]
  75.  
  76.      mov al,2
  77.      mov ah,3Dh
  78.      int 21h
  79.      call f_handl
  80.      mov [edi],ax
  81.      ret
  82.  
  83.  
  84. f_cutb:
  85.      BOX box_c4,1
  86.  
  87.      call shoki1
  88.  
  89.       call f_offset
  90.       mov eax,0
  91.       mov [edi],eax
  92.       call f_vol
  93.       mov [edi],eax
  94.       call f_stop
  95.       mov [edi],al
  96.  
  97.  
  98.      call f_read
  99.      call f_cut
  100.      call f_make
  101.        call fn_chk1
  102.      call f_write
  103.      call f_clos1
  104.  
  105. pp_s0:
  106.      mov ecx,0
  107. pp_s1:
  108.      push ecx
  109.  
  110.        call shoki1
  111.  
  112.      call f_move
  113.      call f_read
  114. ;     call fn_chk1
  115.  
  116.      pop ecx
  117.  
  118.           call f_stop
  119.           mov al,[edi]
  120.           cmp al,1
  121.           je frstop
  122.  
  123.      push ecx
  124.  
  125.      call f_cut
  126.      call f_make
  127.         call fn_chk1
  128.      call f_write
  129.      call f_clos1
  130.  
  131.      pop ecx
  132.  
  133.        inc ecx
  134.        cmp ecx,20
  135.        je askcont0
  136.  
  137.      jmp pp_s1
  138.  
  139.  
  140. f_move:
  141.      mov ecx,0
  142.      mov edx,0
  143.  
  144.      call f_offset
  145.      mov eax,[edi]
  146.      mov dx,ax
  147.      shr eax,16
  148.      mov cx,ax
  149.  
  150.      mov al,0
  151.      mov ah,42h
  152.  
  153.      call f_handl
  154.      mov bx,[edi]
  155.      int 21h
  156.      ret
  157.  
  158.  
  159.  
  160. f_read:
  161.      call c_size
  162.      mov ecx,[edi]
  163.  
  164.      call f_size
  165.      mov eax,[edi]
  166.      call f_offset
  167.      mov ebx,[edi]
  168.      sub eax,ebx
  169.  
  170.      cmp eax,ecx
  171.      jg f_read0
  172.  
  173.  
  174.      mov ecx,eax
  175.      call f_vol     ; 最終ファイルのsize
  176.      mov [edi],eax
  177.  
  178.      call f_stop
  179.      mov al,1
  180.      mov [edi],al
  181.  
  182. f_read0:
  183.      call f_handl
  184.      mov bx,[edi]
  185.  
  186.      RAM1 edx
  187.  
  188.      mov ah,3fh
  189.      int 21h
  190.  
  191. f_kaku:
  192.      RAM1 edi
  193.      mov esi,edi
  194.  
  195.      call mozi_buf     ; 先頭の20文字を表示
  196.      add edi,14
  197.      mov ecx,5
  198.      cld
  199.      rep movsd
  200.  
  201.      BOX box_c0,1
  202.      MOZI mozi_buf
  203.  
  204.      ret
  205.  
  206.  
  207. f_cut:
  208.      CALL_P nddoff
  209.      YOMU ecx,510
  210. f_cut12:
  211.      call f_vol
  212.      mov [edi],ecx
  213.  
  214.      call f_offset
  215.      mov eax,[edi]
  216.      add eax,ecx
  217.      mov [edi],eax
  218.  
  219.      ret
  220.  
  221.  
  222. f_make:
  223.      call f_name2        ; file_nameを代える
  224.      mov edx,[edi]
  225.  
  226. f_make01:
  227.      mov al,[edx]
  228.      inc edx
  229.      cmp al,0
  230.      jne f_make01
  231.  
  232.      sub edx,2
  233.      
  234.      mov al,[edx]
  235.      cmp al,39h
  236.      je f_ma1
  237.      inc al
  238.      mov [edx],al
  239.  
  240. f_make0:
  241.      call f_name2
  242.      mov edx,[edi]
  243.  
  244.      mov al,2
  245.      mov ah,3ch
  246.      mov ecx,0
  247.      int 21h
  248.  
  249.      call f_handl1
  250.      mov [edi],ax
  251.  
  252.      ret
  253.  
  254. f_ma1:
  255.      mov al,'0'
  256.      mov [edx],al
  257.      dec edx
  258.      mov al,[edx]
  259.      inc al
  260.      mov [edx],al
  261.      jmp f_make0
  262.  
  263.  
  264.  
  265. f_write:
  266.      RAM1 edx     ; ディスクに書き込む
  267.  
  268.      call f_vol
  269.      mov ecx,[edi]
  270.  
  271.      call f_handl1
  272.      mov bx,[edi]
  273.      mov al,0
  274.      mov ah,40h
  275.      int 21h
  276.  
  277.      ret
  278.  
  279.  
  280. f_clos:
  281.      call f_handl
  282.      mov bx,[edi]
  283.      mov ah,3Eh
  284.      int 21h
  285.  
  286.      ret
  287.  
  288. f_clos1:
  289.      call f_handl1
  290.      mov bx,[edi]
  291.      mov ah,3Eh
  292.      int 21h
  293.  
  294.      ret
  295.  
  296.  
  297.  
  298. frstop:
  299.      call f_make
  300.      call f_write
  301.      call f_clos1
  302.  
  303.      MOZI mozi_stop
  304.  
  305.      jmp matta0
  306.  
  307. matta0:
  308.      call f_clos     ; file close
  309.  
  310.      BOX box_c0,1
  311.      BOX box_c1,1
  312.      BOX box_c2,1
  313.  
  314. ;     call fn_chk1
  315.  
  316. ;     jmp matu
  317.  
  318.      ret
  319.  
  320. askcont0:
  321.      call mozidt_d2
  322.         KAKU 384,edi
  323.         CALL_P nddak
  324.         YOMU ax,382
  325.  
  326.      cmp ax,2
  327.      jne pp_s0
  328.  
  329.      jmp matta0
  330.  
  331.  
  332.  
  333. fn_chk1:
  334.      BOX box_f2,1
  335.  
  336.      call f_name2
  337.      mov edx,[edi]
  338.      call mozi_newf
  339.      add edi,14
  340. fn12:
  341.      mov al,[edx]
  342.      mov [edi],al
  343.      inc edx
  344.      inc edi
  345.      cmp al,0
  346.      jne fn12
  347.  
  348.      MOZI mozi_newf
  349.      MOZI mozi_hnewf
  350.      ret
  351.  
  352.  
  353.  
  354.  
  355.  
  356. p_call:
  357.      M_P_CALL
  358. p_set:
  359.      M_P_SET
  360.  
  361. ;-----------------------------------------------------------
  362.  
  363. f_handl:
  364.      call sub_edi
  365.      dw     0
  366.  
  367. f_handl1:
  368.      call sub_edi
  369.      dw     0
  370.  
  371. f_vol:
  372.      call sub_edi
  373.      dd     0
  374. f_size:
  375.      call sub_edi
  376.      dd     0
  377. c_size:
  378.      call sub_edi
  379.      dd     0
  380. f_offset:
  381.      call sub_edi
  382.      dd     0
  383.  
  384. f_stop:
  385.      call sub_edi
  386.      db     0
  387.  
  388.  
  389.  
  390.  
  391. f_name1:
  392.      call sub_edi
  393.      dd  0
  394.  
  395. f_name2:
  396.      call sub_edi
  397.      dd  0
  398.  
  399. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  400.  
  401. nddak:
  402.      call sub_edi
  403.      dw     ?
  404.      db 'DAKUHI2',0
  405.  
  406. nddoff:
  407.      call sub_edi
  408.      dw     ?
  409.      db 'D_OFF',0
  410.  
  411.  
  412.  
  413. box_f2:
  414.     call sub_edi
  415.          dw     1,500,30,100,345,0,0,15,6,1
  416. box_c0:
  417.     call sub_edi
  418.          dw     1,250,30,290,245,0,0,0,0,1
  419. box_c4:
  420.     call sub_edi
  421.          dw     1,200,30,290,195,0,0,0,0,1
  422. box_c1:
  423.     call sub_edi
  424.          dw     1,500,30,100,295,0,0,0,0,1
  425. box_c2:
  426.     call sub_edi
  427.          dw     1,500,30,100,345,0,0,0,0,1
  428.  
  429.  
  430. mozi_stop:
  431.     call sub_edi
  432.        dw    1,15,300,200,50,70,1
  433.        db     '終わりました',0
  434.                 dw 0,0
  435. mozi_buf:
  436.     call sub_edi
  437.        dw    1,15,300,250,20,20,1
  438.        db     30  dup(0)
  439.  
  440.  
  441. mozi_newf:
  442.     call sub_edi
  443.        dw    1,15,250,350,0,0,1
  444.            db  64 dup(0)
  445.                 dw 0,0
  446. mozi_hnewf:
  447.     call sub_edi
  448.        dw    1,7,110,350,0,0,1
  449.             db  '(分割)',0
  450.                 dw 0,0
  451.  
  452.  
  453. mozidt_d:
  454.      call sub_edi
  455.      db '分割FILEは同じディレクトリ',0
  456.      db ' OK 変える  ',0
  457.  
  458. mozidt_d1:
  459.      call sub_edi
  460.      db '   分割します',0
  461.      db ' OK やめる  ',0
  462.  
  463. mozidt_d2:
  464.      call sub_edi
  465.      db '   続けるかい',0
  466.      db ' 続けるやめる  ',0
  467.  
  468.